package net.android.dofcalculator;

import java.util.HashMap;
import java.util.Map;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.AdapterView.OnItemSelectedListener;

public class Main extends Activity implements OnClickListener {

    private Map<String, Double> cocMap = null;
    private Map<String, Double> apertureMap = null;

    private Spinner brand;
    private Spinner model;
    private Spinner focalLength;
    private Spinner fstop;
    private Spinner units;
    private EditText subject_distance;
    private Button calculateBtn;

    @Override
    public void onCreate(Bundle savedInstanceState) {
	cocMap = new HashMap<String, Double>();
	apertureMap = new HashMap<String, Double>();
	super.onCreate(savedInstanceState);
	setContentView(R.layout.main);
	buildCocMap();
	buildApertureMap();

	brand = (Spinner) findViewById(R.id.brand);
	model = (Spinner) findViewById(R.id.model);
	focalLength = (Spinner) findViewById(R.id.focal_length);
	units = (Spinner) findViewById(R.id.units);
	fstop = (Spinner) findViewById(R.id.fstop);
	subject_distance = (EditText) findViewById(R.id.subject_distance);
	calculateBtn = (Button) findViewById(R.id.calculateBtn);

	calculateBtn.setOnClickListener(this);

	// set default list for brand names
	updateSpinnerList(R.array.brands, brand);
	updateSpinnerList(R.array.focal_lengths, focalLength);
	updateSpinnerList(R.array.f_stops, fstop);
	updateSpinnerList(R.array.units, units);

	brand.setOnItemSelectedListener(new OnItemSelectedListener() {
	    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
		TextView tv = (TextView) arg1;
		String s = tv.getText().toString();
		Log.i("selected", s);
		updateModelList(s);
	    }

	    public void onNothingSelected(AdapterView<?> arg0) {
		// TODO Auto-generated method stub
		// Toast.makeText(Main.this, ""+arg2, 1000);
	    }
	});

    }

    private void updateModelList(String selected) {
	if (selected.equalsIgnoreCase("canon")) {
	    updateSpinnerList(R.array.Canon_list, model);
	} else if (selected.equalsIgnoreCase("agfa")) {
	    updateSpinnerList(R.array.Agfa_list, model);
	} else if (selected.equalsIgnoreCase("Casio")) {
	    updateSpinnerList(R.array.Casio_list, model);
	} else if (selected.equalsIgnoreCase("Contax")) {
	    updateSpinnerList(R.array.Contax_list, model);
	} else if (selected.equalsIgnoreCase("Epson")) {
	    updateSpinnerList(R.array.Epson_list, model);
	} else if (selected.equalsIgnoreCase("Fujifilm")) {
	    updateSpinnerList(R.array.Fujifilm_list, model);
	} else if (selected.equalsIgnoreCase("GE")) {
	    updateSpinnerList(R.array.GE_list, model);
	} else if (selected.equalsIgnoreCase("Hewlett Packard")) {
	    updateSpinnerList(R.array.HewlettPackard_list, model);
	} else if (selected.equalsIgnoreCase("Kodak")) {
	    updateSpinnerList(R.array.Kodak_list, model);
	} else if (selected.equalsIgnoreCase("Konica Minolta")) {
	    updateSpinnerList(R.array.KonicaMinolta_list, model);
	} else if (selected.equalsIgnoreCase("Kyocera")) {
	    updateSpinnerList(R.array.Kyocera_list, model);
	} else if (selected.equalsIgnoreCase("Leica")) {
	    updateSpinnerList(R.array.Leica_list, model);
	} else if (selected.equalsIgnoreCase("Mamiya")) {
	    updateSpinnerList(R.array.Mamiya_list, model);
	} else if (selected.equalsIgnoreCase("Microtek")) {
	    updateSpinnerList(R.array.Microtek_list, model);
	} else if (selected.equalsIgnoreCase("Minolta")) {
	    updateSpinnerList(R.array.Minolta_list, model);
	} else if (selected.equalsIgnoreCase("Nikon")) {
	    updateSpinnerList(R.array.Nikon_list, model);
	} else if (selected.equalsIgnoreCase("Olympus")) {
	    updateSpinnerList(R.array.Olympus_list, model);
	} else if (selected.equalsIgnoreCase("Panasonic")) {
	    updateSpinnerList(R.array.Panasonic_list, model);
	} else if (selected.equalsIgnoreCase("Pentax")) {
	    updateSpinnerList(R.array.Pentax_list, model);
	} else if (selected.equalsIgnoreCase("Olympus")) {
	    updateSpinnerList(R.array.Olympus_list, model);
	} else if (selected.equalsIgnoreCase("Ricoh")) {
	    updateSpinnerList(R.array.Ricoh_list, model);
	} else if (selected.equalsIgnoreCase("Samsung")) {
	    updateSpinnerList(R.array.Samsung_list, model);
	} else if (selected.equalsIgnoreCase("Sanyo")) {
	    updateSpinnerList(R.array.Sanyo_list, model);
	} else if (selected.equalsIgnoreCase("Sigma")) {
	    updateSpinnerList(R.array.Sigma_list, model);
	} else if (selected.equalsIgnoreCase("Sony")) {
	    updateSpinnerList(R.array.Sony_list, model);
	} else if (selected.equalsIgnoreCase("Vivitar")) {
	    updateSpinnerList(R.array.Vivitar_list, model);
	} else {
	    updateSpinnerList(R.array.others, model);
	}
    }

    private void updateSpinnerList(int resourceId, Spinner model) {
	ArrayAdapter<CharSequence> modelArrays = ArrayAdapter.createFromResource(this, resourceId,
		android.R.layout.simple_spinner_item);
	modelArrays.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
	model.setAdapter(modelArrays);
    }

    public void onClick(View v) {
	Log.i("Clicked", model.getSelectedItem().toString() + ":" + getCoc(model.getSelectedItem().toString()) + "");

	double coc = getCoc(model.getSelectedItem().toString());
	double focal = Double.valueOf(focalLength.getSelectedItem().toString()).doubleValue();
	String sAperture = fstop.getSelectedItem().toString();
	double aperture = Double.valueOf(sAperture.substring(sAperture.lastIndexOf("/") + 1, sAperture.length()))
		.doubleValue();
	double subjectDistance = Double.valueOf(subject_distance.getText().toString()).doubleValue();
	String unit = units.getSelectedItem().toString();

	Log.i("coc", coc + "");
	Log.i("focal", focal + "");
	Log.i("aperture", aperture + "");
	Log.i("subjectDistance", subjectDistance + "");
	Log.i("unit", unit + "");

	Intent intent = new Intent("net.android.dofcalculator.RESULT");
	intent.putExtra("coc", coc);
	intent.putExtra("focal", focal);
	intent.putExtra("aperture", getAperture(aperture));
	intent.putExtra("subjectDistance", subjectDistance);
	intent.putExtra("unit", unit);
	
	startActivity(intent);

    }
    
    
    private double getAperture(double aperture){
	//Log.i("HERE IN DOUBLE::::::::::: ", aperture+"");
	return (Double)apertureMap.get(String.valueOf(aperture));
    }
    
    private void buildApertureMap(){
	apertureMap.put("1.0", 1.0);
	apertureMap.put("1.2", 1.189207);
	apertureMap.put("1.4", 1.414214);
	apertureMap.put("1.6", 1.587401);
	apertureMap.put("1.7", 1.681793);
	apertureMap.put("1.8", 1.781797);
	apertureMap.put("2.0", 2.000000);
	apertureMap.put("2.2", 2.244924);
	apertureMap.put("2.4", 2.378414);
	apertureMap.put("2.5", 2.519842);
	apertureMap.put("2.8", 2.828427);
	apertureMap.put("3.2", 3.174802);
	apertureMap.put("3.4", 3.363586);
	apertureMap.put("3.6", 3.563595);
	apertureMap.put("4.0", 4.000000);
	apertureMap.put("4.5", 4.489848);
	apertureMap.put("4.8", 4.756828);
	apertureMap.put("5.0", 5.039684);
	apertureMap.put("5.6", 5.656854);
	apertureMap.put("6.4", 6.349604);
	apertureMap.put("6.7", 6.727171);
	apertureMap.put("7.1", 7.127190);
	apertureMap.put("8.0", 8.000000);
	apertureMap.put("9.0", 8.979696);
	apertureMap.put("9.5", 9.513657);
	apertureMap.put("10.0", 10.07937);
	apertureMap.put("11.0", 11.313708);
	apertureMap.put("12.7", 12.699208);
	apertureMap.put("13.5", 13.454343);
	apertureMap.put("14.3", 14.254379);
	apertureMap.put("16.0", 16.000000);
	apertureMap.put("18.0", 17.959393);
	apertureMap.put("19.0", 19.027314);
	apertureMap.put("20.0", 20.158737);
	apertureMap.put("22.0", 22.627417);
	apertureMap.put("25.0", 25.398417);
	apertureMap.put("27.0", 26.908685);
	apertureMap.put("28.0", 28.508759);
	apertureMap.put("32.0", 32.0);
	apertureMap.put("45.0", 45.254834);
	apertureMap.put("64.0", 64.0);

    }

    private void buildCocMap() {

	cocMap.put("Agfa ePhoto CL-18", 0.0050);
	cocMap.put("Canon 1D", 0.023);
	cocMap.put("Canon 1D Mark II", 0.023);
	cocMap.put("Canon 1D Mark II N", 0.023);
	cocMap.put("Canon 1D Mark III", 0.023);
	cocMap.put("Canon 1DS", 0.03);
	cocMap.put("Canon 1Ds Mark II", 0.03);
	cocMap.put("Canon 1Ds Mark III", 0.03);
	cocMap.put("Canon 5D", 0.03);
	cocMap.put("Canon 10D", 0.019);
	cocMap.put("Canon 20D", 0.019);
	cocMap.put("Canon 20Da", 0.019);
	cocMap.put("Canon 30D", 0.019);
	cocMap.put("Canon 40D", 0.019);
	cocMap.put("Canon D30", 0.019);
	cocMap.put("Canon D60", 0.019);
	cocMap.put("Canon Digital Rebel / 300D", 0.019);
	cocMap.put("Canon Digital Rebel XT / 350D", 0.019);
	cocMap.put("Canon Digital Rebel XTi / 400D", 0.019);
	cocMap.put("Canon Digital Rebel XSi / 450D", 0.019);
	cocMap.put("Canon PowerShot A10", 0.0050);
	cocMap.put("Canon PowerShot A20", 0.0050);
	cocMap.put("Canon PowerShot A30", 0.0050);
	cocMap.put("Canon PowerShot A40", 0.0050);
	cocMap.put("Canon PowerShot A60", 0.0050);
	cocMap.put("Canon PowerShot A70", 0.0050);
	cocMap.put("Canon PowerShot A75", 0.0050);
	cocMap.put("Canon PowerShot A80", 0.0060);
	cocMap.put("Canon PowerShot A85", 0.0050);
	cocMap.put("Canon PowerShot A95", 0.0060);
	cocMap.put("Canon PowerShot A100", 0.0040);
	cocMap.put("Canon PowerShot A200", 0.0040);
	cocMap.put("Canon PowerShot A300", 0.0050);
	cocMap.put("Canon PowerShot A310", 0.0050);
	cocMap.put("Canon PowerShot A400", 0.0040);
	cocMap.put("Canon PowerShot A430", 0.0040);
	cocMap.put("Canon PowerShot A450", 0.0040);
	cocMap.put("Canon PowerShot A460", 0.0040);
	cocMap.put("Canon PowerShot A470", 0.0050);
	cocMap.put("Canon PowerShot A510", 0.0050);
	cocMap.put("Canon PowerShot A520", 0.0050);
	cocMap.put("Canon PowerShot A530", 0.0050);
	cocMap.put("Canon PowerShot A540", 0.0050);
	cocMap.put("Canon PowerShot A550", 0.0050);
	cocMap.put("Canon PowerShot A560", 0.0050);
	cocMap.put("Canon PowerShot A570 IS", 0.0050);
	cocMap.put("Canon PowerShot A580", 0.0050);
	cocMap.put("Canon PowerShot A590 IS", 0.0050);
	cocMap.put("Canon PowerShot A610", 0.0060);
	cocMap.put("Canon PowerShot A620", 0.0060);
	cocMap.put("Canon PowerShot A630", 0.0060);
	cocMap.put("Canon PowerShot A640", 0.0060);
	cocMap.put("Canon PowerShot A650", 0.0060);
	cocMap.put("Canon PowerShot A650 IS", 0.0060);
	cocMap.put("Canon PowerShot A700", 0.0050);
	cocMap.put("Canon PowerShot A720 IS", 0.0050);
	cocMap.put("Canon PowerShot A820", 0.0070);
	cocMap.put("Canon PowerShot A900", 0.0070);
	cocMap.put("Canon PowerShot A710 IS", 0.0050);
	cocMap.put("Canon PowerShot G1", 0.0060);
	cocMap.put("Canon PowerShot G2", 0.0060);
	cocMap.put("Canon PowerShot G3", 0.0060);
	cocMap.put("Canon PowerShot G5", 0.0060);
	cocMap.put("Canon PowerShot G6", 0.0060);
	cocMap.put("Canon PowerShot G7", 0.0060);
	cocMap.put("Canon PowerShot G9", 0.0060);
	cocMap.put("Canon Powershot Pro1", 0.0080);
	cocMap.put("Canon PowerShot Pro 90 IS", 0.0060);
	cocMap.put("Canon Powershot S1 IS", 0.0050);
	cocMap.put("Canon Powershot S2 IS", 0.0050);
	cocMap.put("Canon Powershot S3 IS", 0.0050);
	cocMap.put("Canon Powershot S5 IS", 0.0050);
	cocMap.put("Canon PowerShot S30", 0.0060);
	cocMap.put("Canon PowerShot S40", 0.0060);
	cocMap.put("Canon PowerShot S45", 0.0060);
	cocMap.put("Canon PowerShot S50", 0.0060);
	cocMap.put("Canon PowerShot S60", 0.0060);
	cocMap.put("Canon PowerShot S70", 0.0060);
	cocMap.put("Canon PowerShot S80", 0.0060);
	cocMap.put("Canon PowerShot S110 Elph", 0.0050);
	cocMap.put("Canon PowerShot S200 Elph", 0.0050);
	cocMap.put("Canon PowerShot S230 Elf", 0.0050);
	cocMap.put("Canon PowerShot S300 Elph", 0.0050);
	cocMap.put("Canon PowerShot S330 Elph", 0.0050);
	cocMap.put("Canon PowerShot S400", 0.0060);
	cocMap.put("Canon PowerShot S410", 0.0060);
	cocMap.put("Canon PowerShot S500", 0.0060);
	cocMap.put("Canon Powershot SD10 Elph", 0.0050);
	cocMap.put("Canon Powershot SD20 Elph", 0.0050);
	cocMap.put("Canon Powershot SD30 Elph", 0.0050);
	cocMap.put("Canon Powershot SD40", 0.0050);
	cocMap.put("Canon Powershot SD100 Elph", 0.0050);
	cocMap.put("Canon Powershot SD110 Elph", 0.0050);
	cocMap.put("Canon Powershot SD200", 0.0050);
	cocMap.put("Canon Powershot SD300", 0.0050);
	cocMap.put("Canon Powershot SD400", 0.0050);
	cocMap.put("Canon Powershot SD430 Wireless", 0.0050);
	cocMap.put("Canon Powershot SD450", 0.0050);
	cocMap.put("Canon Powershot SD500", 0.0060);
	cocMap.put("Canon Powershot SD550", 0.0060);
	cocMap.put("Canon Powershot SD600", 0.0050);
	cocMap.put("Canon Powershot SD630", 0.0050);
	cocMap.put("Canon Powershot SD700 IS", 0.0050);
	cocMap.put("Canon Powershot SD750", 0.0050);
	cocMap.put("Canon Powershot SD800 IS", 0.0050);
	cocMap.put("Canon Powershot SD850 IS", 0.0050);
	cocMap.put("Canon Powershot SD870 IS", 0.0050);
	cocMap.put("Canon Powershot SD900", 0.0060);
	cocMap.put("Canon Powershot SD950 IS", 0.0060);
	cocMap.put("Canon Powershot SD1000", 0.0050);
	cocMap.put("Canon Powershot SD1100 IS", 0.0050);
	cocMap.put("Canon Powershot SX100 IS", 0.0050);
	cocMap.put("Casio Exilim EX-F1", 0.0060);
	cocMap.put("Casio Exilim EX-S2", 0.0050);
	cocMap.put("Casio Exilim EX-M2", 0.0060);
	cocMap.put("Casio Exilim EX-P505", 0.0050);
	cocMap.put("Casio Exilim EX-P600", 0.0060);
	cocMap.put("Casio Exilim EX-P700", 0.0060);
	cocMap.put("Casio Exilim EX-S10", 0.0050);
	cocMap.put("Casio Exilim EX-S100", 0.0040);
	cocMap.put("Casio Exilim EX-S500", 0.0050);
	cocMap.put("Casio Exilim EX-S600", 0.0050);
	cocMap.put("Casio Exilim EX-S600D", 0.0050);
	cocMap.put("Casio Exilim EX-S770", 0.0050);
	cocMap.put("Casio Exilim EX-S880", 0.0050);
	cocMap.put("Casio Exilim EX-V7", 0.0050);
	cocMap.put("Casio Exilim EX-V8", 0.0050);
	cocMap.put("Casio Exilim EX-Z5", 0.0050);
	cocMap.put("Casio Exilim EX-Z30", 0.0050);
	cocMap.put("Casio Exilim EX-Z40", 0.0050);
	cocMap.put("Casio Exilim EX-Z50", 0.0050);
	cocMap.put("Casio Exilim EX-Z55", 0.0050);
	cocMap.put("Casio Exilim EX-Z57", 0.0050);
	cocMap.put("Casio Exilim EX-Z60", 0.0050);
	cocMap.put("Casio Exilim EX-Z70", 0.0050);
	cocMap.put("Casio Exilim EX-Z75", 0.0050);
	cocMap.put("Casio Exilim EX-Z77", 0.0050);
	cocMap.put("Casio Exilim EX-Z80", 0.0050);
	cocMap.put("Casio Exilim EX-Z100", 0.0050);
	cocMap.put("Casio Exilim EX-Z110", 0.0050);
	cocMap.put("Casio Exilim EX-Z120", 0.0060);
	cocMap.put("Casio Exilim EX-Z200", 0.0050);
	cocMap.put("Casio Exilim EX-Z500", 0.0050);
	cocMap.put("Casio Exilim EX-Z600", 0.0050);
	cocMap.put("Casio Exilim EX-Z700", 0.0050);
	cocMap.put("Casio Exilim EX-Z750", 0.0060);
	cocMap.put("Casio Exilim EX-Z850", 0.0060);
	cocMap.put("Casio Exilim EX-Z1000", 0.0060);
	cocMap.put("Casio Exilim EX-Z1050", 0.0060);
	cocMap.put("Casio Exilim EX-Z1080", 0.0060);
	cocMap.put("Casio Exilim EX-Z1200SR", 0.0060);
	cocMap.put("Casio Exilim QV-R51", 0.0060);
	cocMap.put("Casio Exilim QV-R61", 0.0060);
	cocMap.put("Casio Exilim QV-R62", 0.0060);
	cocMap.put("Contax N Digital", 0.03);
	cocMap.put("Contax TVS Digital", 0.0060);
	cocMap.put("Contax SL300RT", 0.0050);
	cocMap.put("Epson PhotoPC 3100 Z", 0.0060);
	cocMap.put("Epson PhotoPC L-410", 0.0050);
	cocMap.put("Epson L-500V", 0.0050);
	cocMap.put("Epson RD-1", 0.02);
	cocMap.put("Epson RD-1S", 0.02);
	cocMap.put("Fujifilm FinePix 30i", 0.0050);
	cocMap.put("Fujifilm FinePix A120", 0.0050);
	cocMap.put("Fujifilm FinePix A203", 0.0050);
	cocMap.put("Fujifilm FinePix A303", 0.0050);
	cocMap.put("Fujifilm FinePix A330", 0.0050);
	cocMap.put("Fujifilm FinePix A340", 0.0050);
	cocMap.put("Fujifilm FinePix A345", 0.0050);
	cocMap.put("Fujifilm FinePix A350", 0.0050);
	cocMap.put("Fujifilm FinePix A400", 0.0050);
	cocMap.put("Fujifilm FinePix A600", 0.0070);
	cocMap.put("Fujifilm FinePix A610", 0.0050);
	cocMap.put("Fujifilm FinePix A800", 0.0070);
	cocMap.put("Fujifilm FinePix A920", 0.0070);
	cocMap.put("Fujifilm FinePix E500", 0.0050);
	cocMap.put("Fujifilm FinePix E510", 0.0050);
	cocMap.put("Fujifilm FinePix E550", 0.0070);
	cocMap.put("Fujifilm FinePix E900", 0.0070);
	cocMap.put("Fujifilm FinePix F10", 0.0070);
	cocMap.put("Fujifilm FinePix F11", 0.0070);
	cocMap.put("Fujifilm FinePix F20", 0.0070);
	cocMap.put("Fujifilm FinePix F30", 0.0070);
	cocMap.put("Fujifilm FinePix F31fd", 0.0070);
	cocMap.put("Fujifilm FinePix F40fd", 0.0070);
	cocMap.put("Fujifilm FinePix F50fd", 0.0070);
	cocMap.put("Fujifilm FinePix F100fd", 0.0070);
	cocMap.put("Fujifilm FinePix F401", 0.0050);
	cocMap.put("Fujifilm FinePix F402", 0.0050);
	cocMap.put("Fujifilm FinePix F440", 0.0050);
	cocMap.put("Fujifilm FinePix F450", 0.0050);
	cocMap.put("Fujifilm FinePix F455", 0.0050);
	cocMap.put("Fujifilm FinePix F470", 0.0050);
	cocMap.put("Fujifilm FinePix F480", 0.0050);
	cocMap.put("Fujifilm FinePix F510", 0.0070);
	cocMap.put("Fujifilm FinePix F601", 0.0070);
	cocMap.put("Fujifilm FinePix F650", 0.0050);
	cocMap.put("Fujifilm FinePix F700", 0.0070);
	cocMap.put("Fujifilm FinePix F710", 0.0060);
	cocMap.put("Fujifilm FinePix F810", 0.0070);
	cocMap.put("Fujifilm FinePix IS-1", 0.0070);
	cocMap.put("Fujifilm FinePix IS Pro", 0.02);
	cocMap.put("Fujifilm FinePix S100", 0.0080);
	cocMap.put("Fujifilm FinePix S602", 0.0070);
	cocMap.put("Fujifilm FinePix 2600", 0.0050);
	cocMap.put("Fujifilm FinePix 2650", 0.0050);
	cocMap.put("Fujifilm FinePix 2800", 0.0050);
	cocMap.put("Fujifilm FinePix 3800", 0.0050);
	cocMap.put("Fujifilm FinePix 4800", 0.0070);
	cocMap.put("Fujifilm FinePix 4900", 0.0070);
	cocMap.put("Fujifilm FinePix S1000fd", 0.0050);
	cocMap.put("Fujifilm FinePix S3000", 0.0050);
	cocMap.put("Fujifilm FinePix S3100", 0.0050);
	cocMap.put("Fujifilm FinePix S3500", 0.0050);
	cocMap.put("Fujifilm FinePix S5000", 0.0050);
	cocMap.put("Fujifilm FinePix S5200 / S5600", 0.0050);
	cocMap.put("Fujifilm FinePix S5500 / S5100", 0.0050);
	cocMap.put("Fujifilm FinePix S5700", 0.0050);
	cocMap.put("Fujifilm FinePix 6800", 0.0070);
	cocMap.put("Fujifilm FinePix 7000", 0.0070);
	cocMap.put("Fujifilm FinePix S6500fd", 0.0070);
	cocMap.put("Fujifilm FinePix S8000fd", 0.0050);
	cocMap.put("Fujifilm FinePix S8100fd", 0.0050);
	cocMap.put("Fujifilm FinePix S9000 / S9500", 0.0070);
	cocMap.put("Fujifilm FinePix S1 Pro", 0.02);
	cocMap.put("Fujifilm FinePix S2 Pro", 0.02);
	cocMap.put("Fujifilm FinePix S3 Pro", 0.02);
	cocMap.put("Fujifilm FinePix S3 Pro UVIR", 0.02);
	cocMap.put("Fujifilm FinePix S5 Pro", 0.02);
	cocMap.put("Fujifilm FinePix S20 Pro", 0.0070);
	cocMap.put("Fujifilm FinePix V10", 0.0050);
	cocMap.put("Fujifilm FinePix Z1", 0.0050);
	cocMap.put("Fujifilm FinePix Z2", 0.0050);
	cocMap.put("Fujifilm FinePix Z3", 0.0050);
	cocMap.put("Fujifilm FinePix Z20fd", 0.0050);
	cocMap.put("Fujifilm FinePix Z50fd", 0.0070);
	cocMap.put("GE E1050", 0.0050);
	cocMap.put("Hewlett Packard PhotoSmart 120", 0.0080);
	cocMap.put("Hewlett Packard PhotoSmart 318", 0.0060);
	cocMap.put("Hewlett Packard PhotoSmart 320", 0.0050);
	cocMap.put("Hewlett Packard PhotoSmart 435", 0.0050);
	cocMap.put("Hewlett Packard PhotoSmart 620", 0.0050);
	cocMap.put("Hewlett Packard PhotoSmart 635", 0.0040);
	cocMap.put("Hewlett Packard PhotoSmart 715", 0.0060);
	cocMap.put("Hewlett Packard PhotoSmart 720", 0.0060);
	cocMap.put("Hewlett Packard PhotoSmart 735", 0.0050);
	cocMap.put("Hewlett Packard PhotoSmart 812", 0.0060);
	cocMap.put("Hewlett Packard PhotoSmart 850", 0.0060);
	cocMap.put("Hewlett Packard PhotoSmart 912", 0.0070);
	cocMap.put("Hewlett Packard PhotoSmart 935", 0.0060);
	cocMap.put("Hewlett Packard PhotoSmart 945", 0.0060);
	cocMap.put("Hewlett Packard PhotoSmart C215", 0.0050);
	cocMap.put("Hewlett Packard PhotoSmart M22", 0.0050);
	cocMap.put("Hewlett Packard PhotoSmart M23", 0.0050);
	cocMap.put("Hewlett Packard PhotoSmart M307", 0.0050);
	cocMap.put("Hewlett Packard PhotoSmart M407", 0.0050);
	cocMap.put("Hewlett Packard PhotoSmart M417", 0.0050);
	cocMap.put("Hewlett Packard PhotoSmart M425", 0.0050);
	cocMap.put("Hewlett Packard PhotoSmart M437", 0.0040);
	cocMap.put("Hewlett Packard PhotoSmart M517", 0.0050);
	cocMap.put("Hewlett Packard PhotoSmart M525", 0.0050);
	cocMap.put("Hewlett Packard PhotoSmart M527", 0.0050);
	cocMap.put("Hewlett Packard PhotoSmart M537", 0.0040);
	cocMap.put("Hewlett Packard PhotoSmart R507", 0.0050);
	cocMap.put("Hewlett Packard PhotoSmart R607", 0.0050);
	cocMap.put("Hewlett Packard PhotoSmart R707", 0.0060);
	cocMap.put("Hewlett Packard PhotoSmart R717", 0.0060);
	cocMap.put("Hewlett Packard PhotoSmart R817", 0.0050);
	cocMap.put("Hewlett Packard PhotoSmart R818", 0.0050);
	cocMap.put("Hewlett Packard PhotoSmart R837", 0.0050);
	cocMap.put("Kodak CX-7430", 0.0050);
	cocMap.put("Kodak CX-6330", 0.0060);
	cocMap.put("Kodak CX-7330", 0.0050);
	cocMap.put("Kodak CX-7530", 0.0050);
	cocMap.put("Kodak DC-5000", 0.0070);
	cocMap.put("Kodak DCS-14N", 0.03);
	cocMap.put("Kodak DCS-720X", 0.019);
	cocMap.put("Kodak DCS-760", 0.023);
	cocMap.put("Kodak DCS Pro", 0.03);
	cocMap.put("Kodak DX-4530", 0.0060);
	cocMap.put("Kodak DX-6440", 0.0050);
	cocMap.put("Kodak DX-6490", 0.0050);
	cocMap.put("Kodak DX-7440", 0.0050);
	cocMap.put("Kodak DX-7590", 0.0050);
	cocMap.put("Kodak DX-7630", 0.0070);
	cocMap.put("Kodak LS-743", 0.0050);
	cocMap.put("Kodak LS-753", 0.0050);
	cocMap.put("Kodak PalmPix 100/500", 0.0040);
	cocMap.put("Kodak Z730", 0.0050);
	cocMap.put("Kodak Z760", 0.0060);
	cocMap.put("Kodak Z7590", 0.0050);
	cocMap.put("Konica KD-310Z", 0.0060);
	cocMap.put("Konica KD-400", 0.0060);
	cocMap.put("Konica KD-500", 0.0060);
	cocMap.put("Konica Minolta Dimage 5", 0.0060);
	cocMap.put("Konica Minolta Dimage 7", 0.0080);
	cocMap.put("Konica Minolta Dimage 7i", 0.0080);
	cocMap.put("Konica Minolta Dimage 7Hi", 0.0080);
	cocMap.put("Konica Minolta Dimage A1", 0.0080);
	cocMap.put("Konica Minolta Dimage A2", 0.0080);
	cocMap.put("Konica Minolta Dimage A200", 0.0080);
	cocMap.put("Konica Minolta Dimage E50", 0.0050);
	cocMap.put("Konica Minolta Dimage E223", 0.0050);
	cocMap.put("Konica Minolta Dimage F100", 0.0060);
	cocMap.put("Konica Minolta Dimage F300", 0.0060);
	cocMap.put("Konica Minolta Dimage G400", 0.0050);
	cocMap.put("Konica Minolta Dimage G600", 0.0060);
	cocMap.put("Konica Minolta Dimage S404", 0.0060);
	cocMap.put("Konica Minolta Dimage S414", 0.0060);
	cocMap.put("Konica Minolta Dimage X", 0.0050);
	cocMap.put("Konica Minolta Dimage Xg", 0.0050);
	cocMap.put("Konica Minolta Dimage Xi", 0.0050);
	cocMap.put("Konica Minolta Dimage Xt", 0.0050);
	cocMap.put("Konica Minolta Dimage X1", 0.0060);
	cocMap.put("Konica Minolta Dimage X20", 0.0040);
	cocMap.put("Konica Minolta Dimage X31", 0.0040);
	cocMap.put("Konica Minolta Dimage X50", 0.0050);
	cocMap.put("Konica Minolta Dimage X60", 0.0050);
	cocMap.put("Konica Minolta Dimage Z1", 0.0050);
	cocMap.put("Konica Minolta Dimage Z2", 0.0050);
	cocMap.put("Konica Minolta Dimage Z3", 0.0050);
	cocMap.put("Konica Minolta Dimage Z5", 0.0050);
	cocMap.put("Konica Minolta Dimage Z6", 0.0050);
	cocMap.put("Konica Minolta Dimage Z10", 0.0050);
	cocMap.put("Konica Minolta Dimage Z20", 0.0050);
	cocMap.put("Konica Minolta Maxxum 5D", 0.02);
	cocMap.put("Konica Minolta Maxxum 7D", 0.02);
	cocMap.put("Kyocera FineCam L4v", 0.0050);
	cocMap.put("Kyocera FineCam M410R", 0.0050);
	cocMap.put("Kyocera FineCam S3", 0.0060);
	cocMap.put("Kyocera FineCam S3x", 0.0060);
	cocMap.put("Kyocera FineCam S4", 0.0060);
	cocMap.put("Kyocera FineCam S5", 0.0060);
	cocMap.put("Kyocera FineCam SL300R", 0.0050);
	cocMap.put("Kyocera FineCam SL400R", 0.0050);
	cocMap.put("Leica C-Lux 1", 0.0050);
	cocMap.put("Leica Digilux 1", 0.0060);
	cocMap.put("Leica Digilux 2", 0.0080);
	cocMap.put("Leica Digilux 3", 0.015);
	cocMap.put("Leica D-Lux", 0.0050);
	cocMap.put("Leica D-Lux 2", 0.0070);
	cocMap.put("Leica D-Lux 3", 0.0070);
	cocMap.put("Leica M8", 0.023);
	cocMap.put("Leica V-LUX 1", 0.0060);
	cocMap.put("Mamiya ZD", 0.039);
	cocMap.put("Microtek Take-it D1", 0.0060);
	cocMap.put("Minolta Dimage 5", 0.0060);
	cocMap.put("Minolta Dimage 7", 0.0080);
	cocMap.put("Minolta Dimage 7i", 0.0080);
	cocMap.put("Minolta Dimage 7Hi", 0.0080);
	cocMap.put("Minolta Dimage A1", 0.0080);
	cocMap.put("Minolta Dimage A2", 0.0080);
	cocMap.put("Minolta Dimage E223", 0.0050);
	cocMap.put("Minolta Dimage F100", 0.0060);
	cocMap.put("Minolta Dimage F300", 0.0060);
	cocMap.put("Minolta Dimage G400", 0.0050);
	cocMap.put("Minolta Dimage G600", 0.0060);
	cocMap.put("Minolta Dimage S404", 0.0060);
	cocMap.put("Minolta Dimage S414", 0.0060);
	cocMap.put("Minolta Dimage X", 0.0050);
	cocMap.put("Minolta Dimage Xg", 0.0050);
	cocMap.put("Minolta Dimage Xi", 0.0050);
	cocMap.put("Minolta Dimage Xt", 0.0050);
	cocMap.put("Minolta Dimage X20", 0.0040);
	cocMap.put("Minolta Dimage X50", 0.0050);
	cocMap.put("Minolta Dimage Z1", 0.0050);
	cocMap.put("Minolta Dimage Z2", 0.0050);
	cocMap.put("Nikon Coolpix 2000", 0.0050);
	cocMap.put("Nikon Coolpix 2100", 0.0040);
	cocMap.put("Nikon Coolpix 2200", 0.0040);
	cocMap.put("Nikon Coolpix 2500", 0.0050);
	cocMap.put("Nikon Coolpix 3100", 0.0050);
	cocMap.put("Nikon Coolpix 3200", 0.0050);
	cocMap.put("Nikon Coolpix 3500", 0.0050);
	cocMap.put("Nikon Coolpix 3700", 0.0050);
	cocMap.put("Nikon Coolpix 4100", 0.0050);
	cocMap.put("Nikon Coolpix 4200", 0.0060);
	cocMap.put("Nikon Coolpix 4300", 0.0060);
	cocMap.put("Nikon Coolpix 4500", 0.0060);
	cocMap.put("Nikon Coolpix 4600", 0.0050);
	cocMap.put("Nikon Coolpix 4800", 0.0050);
	cocMap.put("Nikon Coolpix 5000", 0.0080);
	cocMap.put("Nikon Coolpix 5200", 0.0060);
	cocMap.put("Nikon Coolpix 5400", 0.0060);
	cocMap.put("Nikon Coolpix 5600", 0.0050);
	cocMap.put("Nikon Coolpix 5700", 0.0080);
	cocMap.put("Nikon Coolpix 5900", 0.0060);
	cocMap.put("Nikon Coolpix 7600", 0.0060);
	cocMap.put("Nikon Coolpix 7900", 0.0060);
	cocMap.put("Nikon Coolpix 8400", 0.0080);
	cocMap.put("Nikon Coolpix 8700", 0.0080);
	cocMap.put("Nikon Coolpix 8800", 0.0080);
	cocMap.put("Nikon Coolpix S9600 / S9100", 0.0070);
	cocMap.put("Nikon Coolpix 775", 0.0050);
	cocMap.put("Nikon Coolpix 885", 0.0060);
	cocMap.put("Nikon Coolpix 995", 0.0060);
	cocMap.put("Nikon Coolpix L1", 0.0050);
	cocMap.put("Nikon Coolpix L2", 0.0050);
	cocMap.put("Nikon Coolpix L3", 0.0050);
	cocMap.put("Nikon Coolpix L4", 0.0050);
	cocMap.put("Nikon Coolpix L5", 0.0050);
	cocMap.put("Nikon Coolpix L6", 0.0050);
	cocMap.put("Nikon Coolpix L10", 0.0050);
	cocMap.put("Nikon Coolpix L11", 0.0050);
	cocMap.put("Nikon Coolpix L12", 0.0050);
	cocMap.put("Nikon Coolpix L14", 0.0050);
	cocMap.put("Nikon Coolpix L15", 0.0050);
	cocMap.put("Nikon Coolpix L16", 0.0050);
	cocMap.put("Nikon Coolpix L18", 0.0050);
	cocMap.put("Nikon Coolpix P1", 0.0060);
	cocMap.put("Nikon Coolpix P2", 0.0060);
	cocMap.put("Nikon Coolpix P3", 0.0060);
	cocMap.put("Nikon Coolpix P4", 0.0060);
	cocMap.put("Nikon Coolpix P50", 0.0050);
	cocMap.put("Nikon Coolpix P60", 0.0050);
	cocMap.put("Nikon Coolpix P5000", 0.0060);
	cocMap.put("Nikon Coolpix P5100", 0.0060);
	cocMap.put("Nikon Coolpix SQ", 0.0050);
	cocMap.put("Nikon Coolpix S1", 0.0050);
	cocMap.put("Nikon Coolpix S2", 0.0050);
	cocMap.put("Nikon Coolpix S3", 0.0050);
	cocMap.put("Nikon Coolpix S4", 0.0050);
	cocMap.put("Nikon Coolpix S5", 0.0050);
	cocMap.put("Nikon Coolpix S6", 0.0050);
	cocMap.put("Nikon Coolpix S7c", 0.0050);
	cocMap.put("Nikon Coolpix S9", 0.0050);
	cocMap.put("Nikon Coolpix S10", 0.0050);
	cocMap.put("Nikon Coolpix S50", 0.0050);
	cocMap.put("Nikon Coolpix S50c", 0.0050);
	cocMap.put("Nikon Coolpix S51", 0.0050);
	cocMap.put("Nikon Coolpix S51c", 0.0050);
	cocMap.put("Nikon Coolpix S200", 0.0050);
	cocMap.put("Nikon Coolpix S210", 0.0050);
	cocMap.put("Nikon Coolpix S500", 0.0050);
	cocMap.put("Nikon Coolpix S510", 0.0050);
	cocMap.put("Nikon Coolpix S520", 0.0050);
	cocMap.put("Nikon Coolpix S550", 0.0050);
	cocMap.put("Nikon Coolpix S600", 0.0050);
	cocMap.put("Nikon D1H", 0.02);
	cocMap.put("Nikon D1X", 0.02);
	cocMap.put("Nikon D2H", 0.02);
	cocMap.put("Nikon D2Hs", 0.02);
	cocMap.put("Nikon D2X", 0.02);
	cocMap.put("Nikon D2Xs", 0.02);
	cocMap.put("Nikon D3", 0.03);
	cocMap.put("Nikon D40", 0.02);
	cocMap.put("Nikon D40x", 0.02);
	cocMap.put("Nikon D50", 0.02);
	cocMap.put("Nikon D60", 0.02);
	cocMap.put("Nikon D70", 0.02);
	cocMap.put("Nikon D70s", 0.02);
	cocMap.put("Nikon D80", 0.02);
	cocMap.put("Nikon D100", 0.02);
	cocMap.put("Nikon D200", 0.02);
	cocMap.put("Nikon D300", 0.02);
	cocMap.put("Olympus AZ-1", 0.0050);
	cocMap.put("Olympus Brio D-230", 0.0050);
	cocMap.put("Olympus C-160", 0.0040);
	cocMap.put("Olympus C-2500L", 0.0080);
	cocMap.put("Olympus C-3020", 0.0060);
	cocMap.put("Olympus C-3040", 0.0060);
	cocMap.put("Olympus C-460 ZOOM del Sol", 0.0050);
	cocMap.put("Olympus C-4000", 0.0060);
	cocMap.put("Olympus C-4040Z", 0.0060);
	cocMap.put("Olympus C-50", 0.0060);
	cocMap.put("Olympus C-55 / C-5500", 0.0060);
	cocMap.put("Olympus C-60", 0.0060);
	cocMap.put("Olympus C-70 / C-7000", 0.0060);
	cocMap.put("Olympus C-500", 0.0050);
	cocMap.put("Olympus C-5000", 0.0060);
	cocMap.put("Olympus C-5050", 0.0060);
	cocMap.put("Olympus C-5060", 0.0060);
	cocMap.put("Olympus C-5500", 0.0060);
	cocMap.put("Olympus C-700 ZU", 0.0050);
	cocMap.put("Olympus C-7070", 0.0060);
	cocMap.put("Olympus C-7000", 0.0060);
	cocMap.put("Olympus C-730 CZ", 0.0050);
	cocMap.put("Olympus C-720", 0.0050);
	cocMap.put("Olympus C-730", 0.0050);
	cocMap.put("Olympus C-740", 0.0050);
	cocMap.put("Olympus C-750", 0.0050);
	cocMap.put("Olympus C-765", 0.0050);
	cocMap.put("Olympus C-770", 0.0050);
	cocMap.put("Olympus C-8080", 0.0080);
	cocMap.put("Olympus D-40", 0.0060);
	cocMap.put("Olympus D-100 Brio", 0.0040);
	cocMap.put("Olympus D-150 Brio", 0.0040);
	cocMap.put("Olympus D-370", 0.0040);
	cocMap.put("Olympus D-380", 0.0040);
	cocMap.put("Olympus D-390", 0.0040);
	cocMap.put("Olympus D-395", 0.0050);
	cocMap.put("Olympus D-425", 0.0050);
	cocMap.put("Olympus D-435", 0.0050);
	cocMap.put("Olympus D-510", 0.0050);
	cocMap.put("Olympus D-520", 0.0040);
	cocMap.put("Olympus D-535 / C-370", 0.0050);
	cocMap.put("Olympus D-540", 0.0050);
	cocMap.put("Olympus D-545", 0.0050);
	cocMap.put("Olympus D-550", 0.0050);
	cocMap.put("Olympus D-560", 0.0050);
	cocMap.put("Olympus D-580", 0.0050);
	cocMap.put("Olympus D-590", 0.0050);
	cocMap.put("Olympus D-595", 0.0050);
	cocMap.put("Olympus D-630", 0.0050);
	cocMap.put("Olympus E-1", 0.015);
	cocMap.put("Olympus E-3", 0.015);
	cocMap.put("Olympus E-10", 0.0080);
	cocMap.put("Olympus E-100 RS", 0.0060);
	cocMap.put("Olympus E-20", 0.0080);
	cocMap.put("Olympus E-300", 0.015);
	cocMap.put("Olympus E-330", 0.015);
	cocMap.put("Olympus E-400", 0.015);
	cocMap.put("Olympus E-410", 0.015);
	cocMap.put("Olympus E-500", 0.015);
	cocMap.put("Olympus E-510", 0.015);
	cocMap.put("Olympus Ferrari DIGITAL MODEL 2004", 0.0050);
	cocMap.put("Olympus FE-100", 0.0050);
	cocMap.put("Olympus FE-110", 0.0050);
	cocMap.put("Olympus FE-115", 0.0050);
	cocMap.put("Olympus FE-120", 0.0050);
	cocMap.put("Olympus FE-130", 0.0050);
	cocMap.put("Olympus FE-140", 0.0050);
	cocMap.put("Olympus FE-150", 0.0050);
	cocMap.put("Olympus FE-170", 0.0050);
	cocMap.put("Olympus FE-180", 0.0050);
	cocMap.put("Olympus FE-200", 0.0050);
	cocMap.put("Olympus FE-210", 0.0050);
	cocMap.put("Olympus FE-230", 0.0050);
	cocMap.put("Olympus FE-240", 0.0050);
	cocMap.put("Olympus FE-250", 0.0060);
	cocMap.put("Olympus FE-270", 0.0050);
	cocMap.put("Olympus FE-280", 0.0050);
	cocMap.put("Olympus FE-290", 0.0050);
	cocMap.put("Olympus FE-300", 0.0060);
	cocMap.put("Olympus FE-310", 0.0050);
	cocMap.put("Olympus FE-340", 0.0050);
	cocMap.put("Olympus FE-350", 0.0050);
	cocMap.put("Olympus FE-5500", 0.0050);
	cocMap.put("Olympus ImageLink", 0.0050);
	cocMap.put("Olympus IR-300", 0.0050);
	cocMap.put("Olympus IR-500", 0.0050);
	cocMap.put("Olympus SP-310", 0.0060);
	cocMap.put("Olympus SP-320", 0.0060);
	cocMap.put("Olympus SP-350", 0.0060);
	cocMap.put("Olympus SP-500 UZ", 0.0050);
	cocMap.put("Olympus SP-510 UZ", 0.0050);
	cocMap.put("Olympus SP-550 UZ", 0.0050);
	cocMap.put("Olympus SP-560 UZ", 0.0050);
	cocMap.put("Olympus SP-570 UZ", 0.0050);
	cocMap.put("Olympus SP-700", 0.0050);
	cocMap.put("Olympus Stylus 300", 0.0050);
	cocMap.put("Olympus Stylus 410", 0.0050);
	cocMap.put("Olympus Stylus 500", 0.0050);
	cocMap.put("Olympus Stylus 600", 0.0050);
	cocMap.put("Olympus Stylus 700", 0.0050);
	cocMap.put("Olympus Stylus 720 SW", 0.0050);
	cocMap.put("Olympus Stylus 725 SW", 0.0050);
	cocMap.put("Olympus Stylus 730", 0.0050);
	cocMap.put("Olympus Stylus 740", 0.0050);
	cocMap.put("Olympus Stylus 750", 0.0050);
	cocMap.put("Olympus Stylus 760", 0.0050);
	cocMap.put("Olympus Stylus 770", 0.0050);
	cocMap.put("Olympus Stylus 780", 0.0050);
	cocMap.put("Olympus Stylus 790 SW", 0.0050);
	cocMap.put("Olympus Stylus 800", 0.0060);
	cocMap.put("Olympus Stylus 810", 0.0060);
	cocMap.put("Olympus Stylus 820", 0.0050);
	cocMap.put("Olympus Stylus 830", 0.0050);
	cocMap.put("Olympus Stylus 840", 0.0050);
	cocMap.put("Olympus Stylus 850 SW", 0.0050);
	cocMap.put("Olympus Stylus 1000", 0.0060);
	cocMap.put("Olympus Stylus 1010", 0.0050);
	cocMap.put("Olympus Stylus 1020", 0.0050);
	cocMap.put("Olympus Stylus 1030 SW", 0.0050);
	cocMap.put("Olympus Stylus 1200", 0.0060);
	cocMap.put("Olympus Stylus Verve", 0.0050);
	cocMap.put("Olympus Stylus Verve s", 0.0050);
	cocMap.put("Panasonic Lumix DMC-F7", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FS3", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FS5", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FS20", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FX01", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FX07", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FX2", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FX3", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FX7", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FX8", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FX9", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FX10", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FX12", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FX30", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FX33", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FX35", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FX50", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FX55", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FX100", 0.0060);
	cocMap.put("Panasonic Lumix DMC-FZ1", 0.0040);
	cocMap.put("Panasonic Lumix DMC-FZ3", 0.0040);
	cocMap.put("Panasonic Lumix DMC-FZ4", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FZ5", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FZ7", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FZ8", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FZ10", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FZ18", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FZ20", 0.0050);
	cocMap.put("Panasonic Lumix DMC-FZ30", 0.0060);
	cocMap.put("Panasonic Lumix DMC-FZ50", 0.0060);
	cocMap.put("Panasonic Lumix DMC-L1", 0.015);
	cocMap.put("Panasonic Lumix DMC-L10", 0.015);
	cocMap.put("Panasonic Lumix DMC-LC1", 0.0080);
	cocMap.put("Panasonic Lumix DMC-LC20", 0.0040);
	cocMap.put("Panasonic Lumix DMC-LC40", 0.0060);
	cocMap.put("Panasonic Lumix DMC-LC5", 0.0060);
	cocMap.put("Panasonic Lumix DMC-LC50", 0.0050);
	cocMap.put("Panasonic Lumix DMC-LC70", 0.0050);
	cocMap.put("Panasonic Lumix DMC-LC80", 0.0050);
	cocMap.put("Panasonic Lumix DMC-LS1", 0.0050);
	cocMap.put("Panasonic Lumix DMC-LS2", 0.0050);
	cocMap.put("Panasonic Lumix DMC-LS60", 0.0050);
	cocMap.put("Panasonic Lumix DMC-LS75", 0.0050);
	cocMap.put("Panasonic Lumix DMC-LS80", 0.0050);
	cocMap.put("Panasonic Lumix DMC-LX1", 0.0070);
	cocMap.put("Panasonic Lumix DMC-LX2", 0.0070);
	cocMap.put("Panasonic Lumix DMC-LZ1", 0.0050);
	cocMap.put("Panasonic Lumix DMC-LZ2", 0.0050);
	cocMap.put("Panasonic Lumix DMC-LZ3", 0.0050);
	cocMap.put("Panasonic Lumix DMC-LZ5", 0.0050);
	cocMap.put("Panasonic Lumix DMC-LZ6", 0.0050);
	cocMap.put("Panasonic Lumix DMC-LZ7", 0.0050);
	cocMap.put("Panasonic Lumix DMC-LZ8", 0.0050);
	cocMap.put("Panasonic Lumix DMC-LZ10", 0.0050);
	cocMap.put("Panasonic Lumix DMC-TZ1", 0.0040);
	cocMap.put("Panasonic Lumix DMC-TZ2", 0.0040);
	cocMap.put("Panasonic Lumix DMC-TZ3", 0.0050);
	cocMap.put("Panasonic Lumix DMC-TZ4", 0.0050);
	cocMap.put("Panasonic Lumix DMC-TZ5", 0.0050);
	cocMap.put("Pentax EI-100", 0.0040);
	cocMap.put("Pentax Optio 30", 0.0050);
	cocMap.put("Pentax Optio 33WR", 0.0050);
	cocMap.put("Pentax Optio 43WR", 0.0050);
	cocMap.put("Pentax Optio 33LF", 0.0050);
	cocMap.put("Pentax Optio 50", 0.0050);
	cocMap.put("Pentax Optio 60", 0.0060);
	cocMap.put("Pentax Optio 230", 0.0050);
	cocMap.put("Pentax Optio 330", 0.0060);
	cocMap.put("Pentax Optio 330GS", 0.0050);
	cocMap.put("Pentax Optio 430", 0.0060);
	cocMap.put("Pentax Optio 430 RS", 0.0060);
	cocMap.put("Pentax Optio 450", 0.0060);
	cocMap.put("Pentax Optio 550", 0.0060);
	cocMap.put("Pentax Optio 555", 0.0060);
	cocMap.put("Pentax Optio 750Z", 0.0060);
	cocMap.put("Pentax Optio A10", 0.0060);
	cocMap.put("Pentax Optio A20", 0.0060);
	cocMap.put("Pentax Optio A30", 0.0060);
	cocMap.put("Pentax Optio A40", 0.0060);
	cocMap.put("Pentax Optio E10", 0.0050);
	cocMap.put("Pentax Optio E20", 0.0050);
	cocMap.put("Pentax Optio E30", 0.0050);
	cocMap.put("Pentax Optio E40", 0.0050);
	cocMap.put("Pentax Optio E50", 0.0050);
	cocMap.put("Pentax Optio MX4", 0.0050);
	cocMap.put("Pentax Optio M10", 0.0050);
	cocMap.put("Pentax Optio M20", 0.0050);
	cocMap.put("Pentax Optio M30", 0.0050);
	cocMap.put("Pentax Optio M40", 0.0050);
	cocMap.put("Pentax Optio M50", 0.0050);
	cocMap.put("Pentax Optio S", 0.0050);
	cocMap.put("Pentax Optio S4i", 0.0050);
	cocMap.put("Pentax Optio S5i", 0.0050);
	cocMap.put("Pentax Optio S5n", 0.0050);
	cocMap.put("Pentax Optio S5z", 0.0050);
	cocMap.put("Pentax Optio S6", 0.0050);
	cocMap.put("Pentax Optio S7", 0.0050);
	cocMap.put("Pentax Optio S10", 0.0060);
	cocMap.put("Pentax Optio S12", 0.0060);
	cocMap.put("Pentax Optio S30", 0.0050);
	cocMap.put("Pentax Optio S40", 0.0050);
	cocMap.put("Pentax Optio S45", 0.0050);
	cocMap.put("Pentax Optio S50", 0.0050);
	cocMap.put("Pentax Optio S55", 0.0050);
	cocMap.put("Pentax Optio S60", 0.0050);
	cocMap.put("Pentax Optio SV", 0.0050);
	cocMap.put("Pentax Optio SVi ", 0.0050);
	cocMap.put("Pentax Optio T10", 0.0050);
	cocMap.put("Pentax Optio T20", 0.0050);
	cocMap.put("Pentax Optio T30", 0.0050);
	cocMap.put("Pentax Optio V10", 0.0050);
	cocMap.put("Pentax Optio X", 0.0050);
	cocMap.put("Pentax Optio W10", 0.0050);
	cocMap.put("Pentax Optio W20", 0.0050);
	cocMap.put("Pentax Optio W30", 0.0050);
	cocMap.put("Pentax Optio WP", 0.0050);
	cocMap.put("Pentax Optio WPi ", 0.0050);
	cocMap.put("Pentax Optio Z10", 0.0050);
	cocMap.put("Pentax *ist D", 0.02);
	cocMap.put("Pentax *ist DL", 0.02);
	cocMap.put("Pentax *ist DL2", 0.02);
	cocMap.put("Pentax *ist DS", 0.02);
	cocMap.put("Pentax *ist DS2", 0.02);
	cocMap.put("Pentax K10D", 0.02);
	cocMap.put("Pentax K20D", 0.02);
	cocMap.put("Pentax K100D", 0.02);
	cocMap.put("Pentax K100D Super", 0.02);
	cocMap.put("Pentax K110D", 0.02);
	cocMap.put("Pentax K200D", 0.02);
	cocMap.put("Ricoh Caplio 500G wide", 0.0060);
	cocMap.put("Ricoh Caplio RX", 0.0050);
	cocMap.put("Ricoh Caplio R2", 0.0050);
	cocMap.put("Ricoh Caplio R3", 0.0050);
	cocMap.put("Ricoh Caplio R4", 0.0050);
	cocMap.put("Ricoh Caplio R5", 0.0050);
	cocMap.put("Ricoh Caplio R6", 0.0050);
	cocMap.put("Ricoh Caplio R7", 0.0050);
	cocMap.put("Ricoh Caplio R30", 0.0050);
	cocMap.put("Ricoh Caplio R40", 0.0050);
	cocMap.put("Ricoh Caplio RR530", 0.0050);
	cocMap.put("Ricoh Caplio RR770", 0.0050);
	cocMap.put("Ricoh Caplio GX", 0.0060);
	cocMap.put("Ricoh Caplio GX8", 0.0060);
	cocMap.put("Ricoh Caplio GX100", 0.0060);
	cocMap.put("Ricoh GR", 0.0060);
	cocMap.put("Ricoh GR Digital II", 0.0060);
	cocMap.put("Samsung Digimax 230", 0.0050);
	cocMap.put("Samsung Digimax 410", 0.0060);
	cocMap.put("Samsung Digimax 240", 0.0040);
	cocMap.put("Samsung Digimax A4", 0.0050);
	cocMap.put("Samsung Digimax A5", 0.0060);
	cocMap.put("Samsung Digimax A6", 0.0060);
	cocMap.put("Samsung Digimax A7", 0.0060);
	cocMap.put("Samsung Digimax A40", 0.0050);
	cocMap.put("Samsung Digimax A50", 0.0040);
	cocMap.put("Samsung Digimax A55W", 0.0050);
	cocMap.put("Samsung Digimax A400", 0.0050);
	cocMap.put("Samsung Digimax A302", 0.0050);
	cocMap.put("Samsung Digimax A402", 0.0050);
	cocMap.put("Samsung Digimax A502", 0.0050);
	cocMap.put("Samsung Digimax i5", 0.0050);
	cocMap.put("Samsung Digimax i50 MP3", 0.0050);
	cocMap.put("Samsung Digimax L50", 0.0050);
	cocMap.put("Samsung Digimax L60", 0.0050);
	cocMap.put("Samsung Digimax L55W", 0.0050);
	cocMap.put("Samsung Digimax L700", 0.0050);
	cocMap.put("Samsung Digimax U-CA 4", 0.0050);
	cocMap.put("Samsung Digimax U-CA 5", 0.0050);
	cocMap.put("Samsung Digimax V3", 0.0060);
	cocMap.put("Samsung Digimax V4", 0.0060);
	cocMap.put("Samsung Digimax V6", 0.0060);
	cocMap.put("Samsung Digimax V50", 0.0060);
	cocMap.put("Samsung Digimax V70", 0.0060);
	cocMap.put("Samsung Digimax V700", 0.0060);
	cocMap.put("Samsung Digimax V800", 0.0060);
	cocMap.put("Samsung GX-1L", 0.02);
	cocMap.put("Samsung GX-1S", 0.02);
	cocMap.put("Samsung GX-10", 0.02);
	cocMap.put("Samsung GX-20", 0.02);
	cocMap.put("Samsung i85", 0.0050);
	cocMap.put("Samsung L73", 0.0050);
	cocMap.put("Samsung L77", 0.0050);
	cocMap.put("Samsung L100", 0.0050);
	cocMap.put("Samsung L110", 0.0050);
	cocMap.put("Samsung L210", 0.0050);
	cocMap.put("Samsung NV3", 0.0060);
	cocMap.put("Samsung NV4", 0.0050);
	cocMap.put("Samsung NV7 OPS", 0.0050);
	cocMap.put("Samsung NV10", 0.0060);
	cocMap.put("Samsung NV11", 0.0060);
	cocMap.put("Samsung NV30", 0.0050);
	cocMap.put("Samsung NV40", 0.0050);
	cocMap.put("Samsung PRO815", 0.0080);
	cocMap.put("Samsung S630", 0.0050);
	cocMap.put("Samsung S730", 0.0050);
	cocMap.put("Samsung S830", 0.0050);
	cocMap.put("Samsung S1030", 0.0050);
	cocMap.put("Samsung S1050", 0.0060);
	cocMap.put("Sanyo Xacti DSC-S1", 0.0050);
	cocMap.put("Sanyo Xacti DSC-S3", 0.0050);
	cocMap.put("Sanyo Xacti DSC-S4", 0.0050);
	cocMap.put("Sanyo Xacti J4", 0.0050);
	cocMap.put("Sanyo VPC-AZ3", 0.0060);
	cocMap.put("Sanyo VPC-J1", 0.0050);
	cocMap.put("Sigma DP1", 0.018);
	cocMap.put("Sigma SD-9", 0.018);
	cocMap.put("Sigma SD-10", 0.018);
	cocMap.put("Sigma SD-14", 0.018);
	cocMap.put("Sony Alpha DSLR-A100", 0.02);
	cocMap.put("Sony Alpha DSLR-A200", 0.02);
	cocMap.put("Sony Alpha DSLR-A300", 0.02);
	cocMap.put("Sony Alpha DSLR-A350", 0.02);
	cocMap.put("Sony Alpha DSLR-A700", 0.02);
	cocMap.put("Sony Cyber Shot DSC-F88", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-F707", 0.0080);
	cocMap.put("Sony Cyber Shot DSC-F717", 0.0080);
	cocMap.put("Sony Cyber Shot DSC-F828", 0.0080);
	cocMap.put("Sony Cyber Shot DSC-G1", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-H1", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-H2", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-H3", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-H5", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-H7", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-H9", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-H10", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-L1", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-M1", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-M2", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-N1", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-N2", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-P2", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-P3", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-P30", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-P31", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-P32", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-P41", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-P5", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-P7", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-P8", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-P9", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-P10", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-P50", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-P51", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-P52", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-P71", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-P72", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-P73", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-P92", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-P93", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-P100", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-P120", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-P150", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-P200", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-R1", 0.018);
	cocMap.put("Sony Cyber Shot DSC-S40", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-S60", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-S75", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-S85", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-S90", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-S600", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-S650", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-S700", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-S730", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-S750", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-S780", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-S800", 0.0070);
	cocMap.put("Sony Cyber Shot DSC-T1", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-T2", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-T3", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-T5", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-T7", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-T9", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-T10", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-T11", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-T20", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-T30", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-T33", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-T50", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-T70", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-T100", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-T200", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-T300", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-U20", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-U40", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-U60", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-V1", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-V3", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-W1", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-W5", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-W7", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-W30", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-W35", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-W50", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-W55", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-W70", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-W80", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-W90", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-W100", 0.0060);
	cocMap.put("Sony Cyber Shot DSC-W120", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-W130", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-W150", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-W170", 0.0050);
	cocMap.put("Sony Cyber Shot DSC-W200", 0.0070);
	cocMap.put("Sony Mavica MVC-CD200", 0.0050);
	cocMap.put("Sony Mavica MVC-CD250", 0.0050);
	cocMap.put("Sony Mavica MVC-CD300", 0.0060);
	cocMap.put("Sony Mavica MVC-CD350", 0.0050);
	cocMap.put("Sony Mavica MVC-CD400", 0.0060);
	cocMap.put("Sony Mavica MVC-CD500", 0.0060);
	cocMap.put("Sony Mavica MVC-FD100", 0.0050);
	cocMap.put("Sony Mavica MVC-FD200", 0.0050);
	cocMap.put("Vivitar Vivicam 3330", 0.0060);
	cocMap.put("Viewpoint Photography ", 0.0060);

    }

    private double getCoc(String name) {

	Log.i("looking for::: ", name);
	if (cocMap.get(name) != null) {
	    return cocMap.get(name);
	}

	return 0.0;
    }

}
